/**
 * Copyright(c) 2015 Jade Techonologies Co., Ltd.
 *
 * History:
 *   14-8-1 上午10:38 Created by Daisy
 */
package com.jade.framework.mom;

import java.util.List;

/**
 * 消息浏览器，用于查找消息。
 *
 * @author Daisy
 * @version 1.0 14-8-1 上午10:38
 */
public interface MomBrowser
{
    /**
     * 根据消息ID获取消息。
     *
     * @param msgId 消息ID
     * @return 消息对象
     * @throws MomException 查询异常
     */
    public MomMessage getMessage(String msgId)
            throws MomException;

    /**
     * 根据消息Key获取消息。
     *
     * @param topic  消息主题
     * @param key    消息key
     * @param maxNum 最大数量
     * @return 消息列表
     * @throws MomException 查询异常
     */
    public List<MomMessage> listMessage(String topic, String key, int maxNum)
            throws MomException;

    /**
     * 根据消息Key获取消息，如果应用中key是唯一的，那么采用这个方法。
     *
     * @param topic 消息主题
     * @param key   消息key
     * @return 消息对象。
     * @throws MomException 查询异常
     */
    public MomMessage getSingleMessage(String topic, String key)
            throws MomException;
}
